#include <stdio.h>

int main() {
    int target;
    scanf("%d", &target);
    // 投四个互不相同的十面骰，求到达target的所有可能总数
    // 使用动态规划，和滑动窗口来统计到达一个目标值的可能总数
    int dp[37] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
    for (int i = 0; i < 3; i++) {
        // 迭代三次
        int indexL = -9; int indexR = 0;
        int curr[37];
        while (indexL < 9 * (i + 1) + 1) {
            int sumUp = 0;
            for (int j = indexL; j <= indexR; j++) {
                if (j >= 0 && j < 9 * (i + 1) + 1) {
                    sumUp += dp[j];
                }
            }
            curr[indexR] = sumUp;
            indexL++; indexR++;
        }
        for (int i = 0; i < 37; i++) {
            dp[i] = curr[i];
        }
    }
    int result = (target > 36) ? 0 : dp[target];
    printf("%d", result);
    return 0;
}